The technology described herein relates to graphics processing systems.
Some graphics processing operations render a first output, e.g. frame, and then perform further processing on that first output to provide the desired, “final” output, e.g. frame.
An example of this is so-called “incremental rendering” in which an, e.g. frame, is first rendered, and then some additional, “incremental”, rendering is done on top of that frame to provide the final output frame. This may be used, e.g., to overlay a user-interface, captions, or similar on frames of video being displayed; when an application is switching between temporary surfaces; and/or to control memory usage for storing transformed primitives, etc.
In incremental rendering, the incremental rendering pass can overwrite some areas of the existing frame, but preserve other areas of it. It is not usually possible therefore simply to render the “incremental” geometry on its own, but rather the incremental geometry must be rendered on top of the existing frame that it is to be applied to (and then the so-modified frame is provided as the output frame). The effect of this then is that before the incremental geometry is rendered, the previously generated frame that it is to be applied to must be read back into the graphics processing pipeline (so that the incremental geometry can then be rendered “on top of” that existing frame).
This is particularly the case for tile-based graphics processing systems. In this case, when a given output frame is to be incrementally rendered, for each tile, the “base” frame content for that tile must first be loaded into the graphics processing pipeline, with the incremental geometry then being rendered on top of that “base” tile content, and the resulting, incrementally rendered, tile then written out, e.g. to main memory.
To facilitate this, a graphics processor may include a “pre-load” unit that is operable to load a previously generated frame from a frame buffer (e.g. in main memory), and/or a first rendering pass that uses a full screen primitive (polygon) to read in the previously generated frame may be performed, before the incremental rendering pass.
The Applicants believe that there remains scope for improvements to the operation of graphics processing systems for operations such as incremental rendering (and otherwise).
Like reference numerals are used for like components where appropriate in the drawings.